Device for reprogramming an embedded system to allow the system to return to an initial embedded system information or a reprogrammed embedded system information

ABSTRACT

A reprogramming device is used for reprogramming embedded systems. The reprogramming device comprises a microprocessor, a memory programmed with software to accomplish the reprogramming of distinctly different embedded systems architectures, and one or more hardware devices that facilitate communication over multiple protocols contained in a portable package designed for both one-time and multi-occurrence use scenarios. In some embodiments, the reprogramming device is able to be used to enhance one or more attributes of performance of existing embedded systems through the reconfiguration of internally stored parameters. In some embodiments, the reprogramming device is also to be used to extract and receive information and instruction from existing embedded systems and enable useful presentation of this information. As a result, the reprogramming device is able to be used to adjust and/or monitor the parameters of the on-board diagnostics computer of a vehicle to ensure peak performance and detect errors.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional PatentApplication Ser. No. 61/489,580, filed May 24, 2011 and titled, “METHODAND APPARATUS FOR EMBEDDED SYSTEMS REPROGRAMMING,” which is herebyincorporated by reference in its entirety for all purposes.

FIELD OF THE INVENTION

The present invention relates to the field of reprogramming.Specifically, the present invention relates to the field ofreprogramming embedded systems.

BACKGROUND

Currently, most vehicles include embedded on-board computing systems forcontrolling various parameters related to the performance of thevehicle. However, often these embedded computing systems fail to providea user interface or other means for adjusting the initial state of theparameters of the on-board computing system. As a result, a user isunable to selectively adjust the systems to meet their particular needs.

SUMMARY OF THE INVENTION

A reprogramming device is able to be used in reprogramming embeddedsystems, including but not limited to both microprocessors andintegrated memory storage devices. The reprogramming device comprises amicroprocessor, a memory programmed with software to accomplish thereprogramming of distinctly different embedded systems architectures,and one or more hardware devices that facilitate communication overmultiple protocols contained in a portable package designed for bothone-time and multi-occurrence use scenarios. In some embodiments, thereprogramming device is able to be used to enhance one or moreattributes of performance of existing embedded systems through thereconfiguration of internally stored parameters. In some embodiments,the reprogramming device is also to be used to extract and receiveinformation and instructions from existing embedded systems and enableuseful presentation of this information. As a result, the reprogrammingdevice is able to be used to adjust and/or monitor the parameters of theon-board diagnostics computer of a vehicle to ensure peak performanceand detect errors.

In one aspect, a device for reprogramming an embedded system on avehicle. The device comprises a memory for storing an application, theapplication configured for presenting a user interface configured fordisplaying embedded system information and receiving an instruction,extracting the embedded system information contained on the embeddedsystem, sending the instruction to the embedded system and reprogrammingthe embedded system information on the embedded system with theinstruction and a processing component coupled to the memory, theprocessing component configured for processing the application. Theapplication utilizes an embedded system interface for sending theinstruction to the embedded system and extracting the embedded systeminformation. The application is further for increasing transactioncapabilities between the embedded system and the device forreprogramming. The device is portable. The device is releasably coupledto the embedded system. The device is permanently coupled to theembedded system. The embedded system comprises a motorcycle on-boardcomputing system. The embedded system information is selected from thegroup consisting of horsepower, speed, rpm, torque, fuel economyparameters, emissions parameters and internally stored variables. Theapplication is further for writing a unique identification code to theembedded system to allow an initial reprogramming and preventing anyadditional reprogramming except to return the embedded system to aninitial state or a reprogrammed state. The application is further formodifying a boot loader of the embedded system to accept larger amountsof data per singular write event. The application is further fortemporarily increasing a baud rate communication speed during areprogramming event. The application is further for reducing requiredinstances of verification of received information. The application isfurther for altering checksum calculation routines to accept longerwrite streams between checksum calculations during reprogramming.

In another aspect, a device for reprogramming an embedded system on avehicle. The device comprises a memory for storing an application, theapplication configured for presenting a user interface configured fordisplaying embedded system information and receiving an instruction,increasing transaction capabilities between the embedded system and thedevice for reprogramming, extracting the embedded system informationcontained on the embedded system using an embedded system interface,sending the instruction to the embedded system using the embedded systeminterface, reprogramming the embedded system information on the embeddedsystem with the instruction and a processing component coupled to thememory, the processing component configured for processing theapplication. The device is portable. The device is releasably coupled tothe embedded system. The device is permanently coupled to the embeddedsystem. The embedded system comprises a motorcycle on-board computingsystem. The embedded system information is selected from the groupconsisting of horsepower, speed, rpm, torque, fuel economy parameters,emissions parameters and internally stored variables. The application isfurther for writing a unique identification code to the embedded systemto allow an initial reprogramming and preventing any additionalreprogramming except to return the embedded system to an initial stateor a reprogrammed state. The application is further for modifying a bootloader of the embedded system to accept larger amounts of data persingular write event. The application is further for temporarilyincreasing a baud rate communication speed during a reprogramming event.The application is further for reducing required instances ofverification of received information. The application is further foraltering checksum calculation routines to accept longer write streamsbetween checksum calculations during reprogramming.

In another aspect, a method of reprogramming an embedded system on avehicle, the method programmed in a memory of a reprogramming device.The method comprises presenting a user interface configured fordisplaying embedded system information and receiving an instruction,increasing transaction capabilities between the embedded system and thereprogramming device, extracting the embedded system informationcontained on the embedded system using an embedded system interface,sending the instruction to the embedded system using the embedded systeminterface and reprogramming the embedded system information on theembedded system with the instruction. The device is portable. The deviceis releasably coupled to the embedded system. The device is permanentlycoupled to the embedded system. The embedded system comprises amotorcycle on-board computing system. The embedded system information isselected from the group consisting of horsepower, speed, rpm, torque,fuel economy parameters, emissions parameters and internally storedvariables. The method further comprises writing a unique identificationcode to the embedded system to allow an initial reprogramming andpreventing any additional reprogramming except to return the embeddedsystem to an initial state or a reprogrammed state. The method furthercomprises modifying a boot loader of the embedded system to acceptlarger amounts of data per singular write event. The method furthercomprises temporarily increasing a baud rate communication speed duringa reprogramming event. The method further comprises reducing requiredinstances of verification of received information. The method furthercomprises altering checksum calculation routines to accept longer writestreams between checksum calculations during reprogramming.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a reprogramming system according to some embodiments.

FIG. 2 illustrates a flow chart for a method of operation areprogramming device according to some embodiments.

FIG. 3 illustrates a block diagram of an exemplary computing deviceconfigured to implement the reprogramming method according to someembodiments.

DETAILED DESCRIPTION

A reprogramming device, system and method for use in reprogrammingembedded systems is described herein. Specifically, the reprogrammingdevice is able to reprogram microprocessors and/or integrated memorystorage devices such as vehicle on-board computer systems. As a result,the reprogramming device enables a user to monitor and/or adjustparameters of the embedded systems. For example, utilizing thereprogramming device a motorcycle user is able to couple thereprogramming device to a motorcycle's on-board computer and adjust theparameters in order to increase the performance of the motorcycle. Insome embodiments, the reprogramming device is modular such that it isable to selectively couple to multiple different systems such asmultiple different types and models of vehicles. Alternatively, thereprogramming device is able to be permanently coupled to a singleembedded system such that a user is able to adjust the performance ofthe system to suit their needs.

As shown in FIG. 1, a reprogramming system 100 comprises a portablereprogramming device 102 coupled to one or more embedded computingsystems 99. In some embodiments, the reprogramming device 102 ispermanently coupled to the computing systems 99. Alternatively, thedevice 102 is able to be selectively, releasably, wired and/orwirelessly coupled. In some embodiments, the computing systems 99 are apart of a motorcycle on-board computing system. Alternatively, thecomputing systems 99 are able to be part of other vehicles or othertypes of embedded systems as are well known in the art.

In some embodiments, the reprogramming device 102 comprises amicroprocessor 104, a memory 106, a user interface 108 and an embeddedsystem interface 110. The memory 104 stores and/or is programmed withsoftware such as a reconfiguration module to be processed by theprocessor 104 to accomplish the reprogramming of distinctly differentembedded systems architectures as described in detail below. The userinterface 108 is able to comprise a display and one or more inputdevices for displaying the monitored parameters of the system 99 andproviding an interface where the user is able to adjust said parametersby inputting commands into the interface 108. In some embodiments, theuser interface 108 is able to be external or omitted from thereprogramming device 102 such that the device 102 couples to the userinterface 108 when in operation. The embedded system interface 110 isable to couple to one or more different systems 99 for receiving inputfrom and outputting data to coupled embedded systems 99 during operationof the reprogramming device 102.

In some embodiments, the reprogramming device 102 further comprisesadditional hardware devices 112 to facilitate communication overmultiple protocols contained in a portable package designed for bothone-time and multi-occurrence use scenarios. In some embodiments, thehardware devices 112 comprise hardware connectors for connecting to theembedded systems 99 as described below. Alternatively, other hardwaredevices 112 for communicating with multiple systems 99 using multipledifferent protocols is envisioned. As a result, the reprogramming device102 is able to be used to enhance one or more attributes of performanceof existing embedded systems through the reconfiguration of internallystored parameters. Additionally, in some embodiments, the reprogrammingdevice 102 is also to be used to extract and receive information andinstructions from existing embedded systems 99 and enable usefulpresentation of this information via the user interface 108. In someembodiments, the presentation of the information via the user interface108 includes formatting the data to increase user-readability.

The reprogramming device 102 comprises a reconfiguring module thatreconfigures the existing parameters of a separate embedded system inorder to enhance one or more attributes of the separate embeddedsystem's 99 performance, or the performance of objects within theseparate embedded system's 99 control, including but not limited to:increasing horsepower, speed, rpm, torque, or other measures ofgenerated power on motor vehicles; increasing fuel economy, reducingemissions, or increasing other measures of efficiency of motor vehicles;enabling the extraction of stored information, current operatingparameters, internally stored variables, or providing access to othersources of useful information within the embedded system. In someembodiments, the reconfiguring module 102 is stored on the memory 106and processed by the processor 104.

The reprogramming device 102 is able to be designed for multipleconfigurations. In some embodiments, the reprogramming device 102 isable to be used as single instance and then discarded. For example, thereconfiguring module of the reprogramming device 102 is able to beconfigured to write a unique identification code to the embedded systemin order to allow an initial reprogramming, after which thereprogramming device 102 will no longer reprogram any other embeddedsystem 99, except to return the initial system to its originalprogramming state having the initial values/setting for each of theparameters. As a result, the reprogramming device 102 enables theintended user to alternate between the modified system and originalsystem, while preventing the reprogramming device 102 from being used onmultiple different systems. In some embodiments, after the first use ofthe reprogramming device 102, a flag is set to prevent the reprogrammingdevice to be used to reprogram a second device. Any otherimplementations are possible to limit the use of the reprogrammingdevice 102.

In some embodiments, the reprogramming device 102 is able to be usedmultiple times, either for the same purpose on one or more embeddedsystems 99, or for several different applications on one or moredifferent embedded systems 99. In some embodiments, the reprogrammingdevice 102 is temporarily connected to the embedded system 99, andexternally powered through the use of wall mounted inverters, or clip onpower leads, for the purpose of reprogramming or extracting a specificamount of data from the system 99. Alternatively, other external and/orinternal power sources are envisioned as are well known in the art. Insome embodiments, the reprogramming device 102 will remain permanently,or semi-permanently installed on the embedded system in a hard wiredconfiguration for the purpose of continuous, periodic and/or selectivereprogramming and adjustment, and for monitoring and extraction of acontinuous data-stream from the embedded system 99. In some embodiments,during the first use of the reprogramming device 102, the reprogrammingdevice 102 receives an identification number of the embedded system 99,so that the reprogramming device 102 is only able to be used with thatembedded system 99. For example, the reprogramming device 102 comparesthe stored identification number with the embedded system identificationnumber each time the two are coupled, and if a match is not detected,the reprogramming device 102 will not function with that embedded system99.

In some embodiments, the hardware devices 112 of the reprogrammingdevice 102 comprise one or more interchangeable external hardwareconnectors such that the reprogramming device is able to couple tomultiple embedded systems 99 of varying origin. Allowing the use of avariety of external hardware connectors 112 enables the reprogrammingdevice 102 to potentially communicate with embedded systems 99 fromdifferent manufacturers, or with systems of different generations withinthe same product family. In some embodiments, one or more of theexternal connectors 112 couple and communicate with the reprogrammingdevice 102 through one or more of an internally mounted flexible wireconnection, an internally mounted hard pin connection, and/or anexternally attached wire cable connection.

In some embodiments, the reprogramming device 102 comprises hardwareand/or software that enable the use of multiple different protocols suchthat the reprogramming device is able to communicate with multipleembedded systems 99 of varying origin. In some embodiments, the hardware112 comprises one or more of line drivers of varying voltage, singleline communication integrated circuit adapters, advanced networkcommunication circuits, or other hardware. In some embodiments,implemented communication hardware is able to comprise: 5v universalasynchronous receiver/transmitter (UART), 12v UART, a K-Line of an onboard diagnostics device, a controller area network bus (CAN-Bus),and/or other communication hardware. It is understood that thereprogramming device 102 is able to be designed to accommodate futurecommunication protocols as they are developed.

In some embodiments, the reprogramming device 102 is designed toexpedite the reprogramming and reconfiguration of embedded systems 99over other means of reprogramming through the use of software. Forexample, the reprogramming device 102 is able to modify the boot loaderof an embedded system 99 to accept larger amounts of data per singularwrite event. This modification comprises temporarily increasing the baudrate communication speed above standard during the reprogramming eventas well as reducing the required instances of verification of thereceived data by the embedded system, typically by a factor of betweeneight and thirty-two. The reprogramming device 102 is also able to alterthe checksum calculation routines to accept longer write streams betweenchecksum calculations during reprogramming, typically extending theamount of data received prior to checksum calculation from between eightand sixteen bytes to between sixty-four and one-hundred-twenty-eightbytes, significantly reducing overall duration of the reprogrammingprocess.

In some embodiments, the reprogramming device 102 is designed to alterembedded systems 99 through the use of software in order to facilitatereal-time reprogramming during future reprogramming events. For example,after the initial use of the reprogramming device 102, the codecontained within the embedded system 99 is able to be reconfigured in asemi-permanent manner through the use of modified communicationsubroutines and by enabling existing communication hardware with theembedded system 99 to allow the modification and retrieval of storeddata and parameters while the embedded system 99 is still operatingunder its intended purpose. An example of this feature is able toinclude the addition to the embedded system's 99 code of a simplecommunication subroutine designed to constantly read from the embeddedsystem's 99 existing UART or other, communication infrastructure withoutinterrupting the current system operations, and to process the receivedinformation in a manner that permanently stores received information sothat the information is able to be referenced and acted upon by one ormore future processor operations. This capability is able to be analternative to disabling the embedded system 99 while under the processof reprogramming, and subsequently returning the embedded system 99 to auseful state once reprogramming has completed.

In some embodiments, the reprogramming device 102 comprises softwareconfigured to facilitate the acquisition of information and storedinternal parameters in real-time from the embedded system. In someembodiments, the software is incorporated into the reconfigure module.For example, after the initial use of the reprogramming device 102, thecode contained within the embedded system 99 is able to be reconfiguredthrough the use of modified communication subroutines and by enablingexisting communication hardware with the embedded system 99 to allow theaccess and retrieval of internal memory and operating parameters, and toprocess the acquired information in such a manner as to be able toeither store the information for future retrieval and processing, or toexport the information to an external medium for viewing, processing oran alternative means of storage. An example of this feature is able toinclude the addition to the embedded system code of a simplecommunication subroutine designed to read registers of random accessmemory (RAM) and periodically transmit this information through theembedded system's existing UART, or other communication infrastructure,at a rate of between 8 and 512 transmissions per second.

The operation of the reprogramming system 100 will now be discussed inconjunction with the flow chart 200 illustrated in FIG. 2 and describedrelative to FIG. 1. A user couples the reprogramming device 102 to oneor more embedded systems 99 at the step 202. In some embodiments, thedevice 102 is coupled to the embedded systems 99 via embedded systeminterface 110 and/or the additional hardware 112. A user selectivelyadjusts and/or monitors the parameters of the embedded systems 99 usingthe user interface 108 at the step 204. In some embodiments, theembedded system 99 is deactivated before the reprogramming device 102 isused to reprogram the parameters. A user operates the embedded system 99according to the adjusted parameters at the step 206. In someembodiments, the method further comprises the user selectively switchingthe state of the embedded system 99 between an initial state and anadjusted state utilizing the reprogramming device 102. In someembodiments, fewer or more steps are implemented. For example, the stepof a user coupling the reprogramming device is able to be skipped byusing an automatic coupling implementation. In another example,additional steps or sub-steps are implemented such as extractinginformation and sending instructions or other information. In someembodiments, transaction capabilities are modified as described herein.In some embodiments, some or all of the steps are performedautomatically.

FIG. 3 illustrates a block diagram of an exemplary computing device 300configured to implement the reprogramming method according to someembodiments. The computing device 300 is able to be used to acquire,store, compute, process, communicate and/or display information. Ingeneral, a hardware structure suitable for implementing the computingdevice 300 includes a network interface 302, a memory 304, a processor306, I/O device(s) 308, a bus 310 and a storage device 312. The choiceof processor is not critical as long as a suitable processor withsufficient speed is chosen. The memory 304 is able to be anyconventional computer memory known in the art. The storage device 312 isable to include a hard drive, CDROM, CDRW, DVD, DVDRW, flash memory cardor any other storage device. The computing device 300 is able to includeone or more network interfaces 302. An example of a network interfaceincludes a network card connected to an Ethernet or other type of LAN.The I/O device(s) 308 are able to include one or more of the following:keyboard, mouse, monitor, display, printer, modem, touchscreen, buttoninterface, a device-specific coupling cable, a universal coupling cableand other devices. In some embodiments, the hardware structure includesmultiple processors and other hardware to perform parallel processing.Reprogramming application(s) 330 used to perform the reprogramming arelikely to be stored in the storage device 312 and memory 304 andprocessed as applications are typically processed. More or lesscomponents shown in FIG. 3 are able to be included in the computingdevice 300. In some embodiments, reprogramming hardware 320 is included.Although the computing device 300 in FIG. 3 includes applications 330and hardware 320 for implementing the reprogramming method, thereprogramming method is able to be implemented on a computing device inhardware, firmware, software or any combination thereof. For example, insome embodiments, the reprogramming applications 330 are programmed in amemory and executed using a processor. In another example, in someembodiments, the reprogramming hardware 320 is programmed hardware logicincluding gates specifically designed to implement the method.

In some embodiments, the reprogramming application(s) 330 includeseveral applications and/or modules. Modules include a user interfacemodule for displaying a user interface and receiving and sendinginformation such as instructions and stored data, a boot loader modulefor modifying a boot loader of the embedded system to accept largeramounts of data per singular write event, a baud rate module fortemporarily increasing a baud rate communication speed during areprogramming event, a verification module for reducing requiredinstances of verification of received information, a checksum module foraltering checksum calculation routines to accept longer write streamsbetween checksum calculations during reprogramming and a use module forlimiting the use of the reprogramming device to a single use, multipleuses or any other use scheme. In some embodiments, modules include oneor more sub-modules as well. In some embodiments, fewer or additionalmodules are able to be included.

Examples of suitable computing devices include a personal computer, alaptop computer, a computer workstation, a server, a mainframe computer,a handheld computer, a personal digital assistant, a cellular/mobiletelephone, a smart phone such as an iPhone®, a smart appliance, a tabletdevice such as an iPad®, or any other suitable computing device.

To utilize the reprogramming device, a user couples the reprogrammingdevice to one or more embedded systems, for example in a motorcycle. Theuser selectively adjusts and/or monitors the parameters of the embeddedsystems using a user interface. The user selectively switches the stateof the embedded system between an initial state and an adjusted stateutilizing the reprogramming device.

In operation, the reprogramming device is able to reprogrammicroprocessors and/or integrated memory storage devices such as vehicleon-board computer systems. The reprogramming device enables a user tomonitor and/or adjust parameters of the embedded systems. For example,utilizing the reprogramming device a motorcycle user is able to couplethe reprogramming device to a motorcycle's on-board computer and adjustthe parameters in order to increase the performance of the motorcycle.Examples of such parameters are horsepower, speed, rpm, torque, fueleconomy parameters, emissions parameters and internally storedvariables. The reprogramming device expedites the reprogramming andreconfiguration of embedded systems over other means of reprogrammingthrough the use of software.

The present invention has been described in terms of specificembodiments incorporating details to facilitate the understanding ofprinciples of construction and operation of the invention. Suchreference herein to specific embodiments and details thereof is notintended to limit the scope of the claims appended hereto. It will bereadily apparent to one skilled in the art that other variousmodifications may be made in the embodiment chosen for illustrationwithout departing from the spirit and scope of the invention as definedby the claims.

What is claimed is:
 1. A device for reprogramming an embedded system ona vehicle comprising: a. a memory for storing an application, theapplication configured for: i. presenting a user interface configuredfor displaying initial embedded system information and receiving aninstruction; ii. extracting the initial embedded system informationcontained on the embedded system; iii. sending the instruction to theembedded system; iv. reprogramming the initial embedded systeminformation on the embedded system in response to the instructionforming reprogrammed embedded system information; and v. writing aunique identification code to the embedded system to allow an initialreprogramming and preventing any additional reprogramming except toreturn the embedded system information to the initial embedded systeminformation or to the reprogrammed embedded system information; and b. aprocessing component coupled to the memory, the processing componentconfigured for processing the application.
 2. The device of claim 1wherein the application utilizes an embedded system interface forsending the instruction to the embedded system and extracting theinitial embedded system information.
 3. The device of claim 1 whereinthe application is further for increasing transaction capabilitiesbetween the embedded system and the device for reprogramming.
 4. Thedevice of claim 1 wherein the device is portable.
 5. The device of claim1 wherein the device is releasably coupled to the embedded system. 6.The device of claim 1 wherein the device is permanently coupled to theembedded system.
 7. The device of claim 1 wherein the embedded systemcomprises a motorcycle on-board computing system.
 8. The device of claim1 wherein the embedded system information is selected from the groupconsisting of horsepower, speed, rpm, torque, fuel economy parameters,emissions parameters and internally stored variables.
 9. The device ofclaim 1 wherein the application is further for modifying a boot loaderof the embedded system to accept larger amounts of data per singularwrite event.
 10. The device of claim 1 wherein the application isfurther for temporarily increasing a baud rate communication speedduring a reprogramming event.
 11. The device of claim 1 wherein theapplication is further for reducing required instances of verificationof received information.
 12. The device of claim 1 wherein theapplication is further for altering checksum calculation routines toaccept longer write streams between checksum calculations duringreprogramming.
 13. A device for reprogramming an embedded system on avehicle comprising: c. a memory for storing an application, theapplication configured for: i. presenting a user interface configuredfor displaying initial embedded system information and receiving aninstruction; ii. increasing transaction capabilities between theembedded system and the device for reprogramming by modifying a bootloader of the embedded system to accept larger amounts of data persingular write event; iii. extracting the initial embedded systeminformation contained on the embedded system using an embedded systeminterface; iv. sending the instruction to the embedded system using theembedded system interface; v. reprogramming the initial embedded systeminformation on the embedded system in response to the instructionforming reprogrammed embedded system information; vi. writing a uniqueidentification code to the embedded system to allow an initialreprogramming and preventing any additional reprogramming except toreturn the embedded system information to the initial embedded systeminformation or to the reprogrammed embedded system information; and d. aprocessing component coupled to the memory, the processing componentconfigured for processing the application.
 14. The device of claim 13wherein the device is portable.
 15. The device of claim 13 wherein thedevice is releasably coupled to the embedded system.
 16. The device ofclaim 13 wherein the device is permanently coupled to the embeddedsystem.
 17. The device of claim 13 wherein the embedded system comprisesa motorcycle on-board computing system.
 18. The device of claim 13wherein the embedded system information is selected from the groupconsisting of horsepower, speed, rpm, torque, fuel economy parameters,emissions parameters and internally stored variables.
 19. The device ofclaim 13 wherein the application is further for temporarily increasing abaud rate communication speed during a reprogramming event.
 20. Thedevice of claim 13 wherein the application is further for reducingrequired instances of verification of received information.
 21. Thedevice of claim 13 wherein the application is further for alteringchecksum calculation routines to accept longer write streams betweenchecksum calculations during reprogramming.
 22. A method ofreprogramming an embedded system on a vehicle, the method programmed ina memory of a reprogramming device comprising: e. presenting a userinterface configured for displaying initial embedded system informationand receiving an instruction; f. increasing transaction capabilitiesbetween the embedded system and the reprogramming device by modifying aboot loader of the embedded system to accept larger amounts of data persingular write event; g. extracting the initial embedded systeminformation contained on the embedded system using an embedded systeminterface; h. sending the instruction to the embedded system using theembedded system interface; i. reprogramming the initial embedded systeminformation on the embedded system in response to the instructionforming reprogrammed embedded system information; and j. writing aunique identification code to the embedded system to allow an initialreprogramming and preventing any additional reprogramming except toreturn the embedded system information to the initial embedded systeminformation or to the reprogrammed embedded system information.
 23. Themethod of claim 22 wherein the device is portable.
 24. The method ofclaim 22 wherein the device is releasably coupled to the embeddedsystem.
 25. The method of claim 22 wherein the device is permanentlycoupled to the embedded system.
 26. The method of claim 22 wherein theembedded system comprises a motorcycle on-board computing system. 27.The method of claim 25 wherein the embedded system information isselected from the group consisting of horsepower, speed, rpm, torque,fuel economy parameters, emissions parameters and internally storedvariables.
 28. The method of claim 22 further comprising temporarilyincreasing a baud rate communication speed during a reprogramming event.29. The method of claim 22 further comprising reducing requiredinstances of verification of received information.
 30. The method ofclaim 22 further comprising altering checksum calculation routines toaccept longer write streams between checksum calculations duringreprogramming.